package ar.edu.unsam.algo3.plantasvszombies.dominio

import java.util.Random
import org.uqbar.commons.utils.Observable

@Observable
class Zombie extends SerVivo implements Cloneable {
	@Property String informeMuerte

	override Zombie clone() {
		super.clone as Zombie
	}

	def boolean daPremio() {
		Math.random >= 0.5
	}

	def boolean ganaPlanta() {
		Math.random > 0.25
	}

	def int PuntosPremio() {
		1 + new Random().nextInt(defensa / 3 - 1)
	}

	def Planta plantaPremio(Fila fila) {
		val nro = new Random().nextInt(fila.jardinZen.plantines.size)
		fila.jardinZen.obtenerPlanta(fila.jardinZen.plantines.get(nro))

	}

	override morir(Fila fila) {
		informeMuerte = null
		if (this.daPremio) {
			if (this.ganaPlanta) {
				val planta = plantaPremio(fila)
				fila.plantas.add(planta)
				informeMuerte = "Ganaste una planta " + planta.nombre + " para tu fila!!!"
			} else {
				val int puntosPremio = 1 + (new Random().nextInt(defensa / 3))
				fila.jardin.recursos = fila.jardin.recursos + puntosPremio
				informeMuerte = "Ganaste " + puntosPremio + " recursos!!!"
			}
		}
	}

}
